﻿using Util.ExtensionMethods;
using PersistLayer.DAL;
using PersistLayer.Model;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace LojaVirtual.Site.Pages.Loja
{
	public partial class Produtos : BaseSite
	{
		protected void Page_Load(object sender, EventArgs e)
		{
			navCategoriasLoja.ClientIDMode = System.Web.UI.ClientIDMode.Static;

			base.PageLoad();
		}

		public override void CarregaTexto()
		{
			hplInicio.Text = Resources.Geral.Inicio;
			hplInicioLoja.Text = string.Format("{0} {1}", Resources.Geral.PaginaInicialLoja, Lj.NomeFantasia);
			hplProdutosLoja.Text = Resources.Geral.Produtos;

			hplInicio.NavigateUrl = "/Site/Pages/Site/Home.aspx";
			hplInicioLoja.NavigateUrl = "/Site/Pages/Loja/Home.aspx";
			hplProdutosLoja.NavigateUrl = "/Site/Pages/Loja/Produtos.aspx";

			hplInicio.Style.Add("color", Lj.CorTextoPrincipal);
			hplInicioLoja.Style.Add("color", Lj.CorTextoPrincipal);
			hplProdutosLoja.Style.Add("color", Lj.CorTextoPrincipal);

			hplInicio.Style.Add("text-decoration", "none");
			hplInicioLoja.Style.Add("text-decoration", "none");
			hplProdutosLoja.Style.Add("text-decoration", "none");

			navCategoriasLoja.Style.Add("border", "4px solid " + Lj.CorPrincipal);

			hCategorias.Style.Add("color", Lj.CorPrincipal);
			hCategorias.Style.Add("border-bottom", string.Format("4px solid {0}", Lj.CorPrincipal));

			lblCategorias.Text = Resources.Geral.Categorias;
			lblPedidos.Text = Resources.Geral.Pedidos;
			lblData.Text = Resources.Geral.Data;
			lblPrecoASC.Text = Resources.Geral.Preco;
			lblPrecoDESC.Text = Resources.Geral.Preco;
			imgPrecoDown.ImageUrl = "/Imagens/Icones/down.png";
			imgPrecoUp.ImageUrl = "/Imagens/Icones/up.png";
		}

		public override void CarregaDados()
		{
			CarregaCategorias();
			CarregaProdutos();
		}

		private void CarregaCategorias()
		{
			DataTable dt = new DataTable();
			dt.Columns.Add("Link");
			dt.Columns.Add("Categoria");

			foreach (var item in new Produto_CategoriaDAL().ListarPorLoja(Lj.ID))
			{
				dicRedirect = new Dictionary<string, string>();
				dicRedirect.Add(item.ID.ToString(), Geral.Constantes.QUERY_STRING.CATEGORIA_ID);

				dt.Rows.Add(base.Redirecionar("Produtos.aspx", dicRedirect), item.Descricao);
			}

			rptCategorias.DataSource = dt;
			rptCategorias.DataBind();
		}

		public void CarregaProdutos()
		{
			DataTable dt = new DataTable();
			dt.Columns.Add("Link");
			dt.Columns.Add("Imagem");
			dt.Columns.Add("displayPromo");
			dt.Columns.Add("Nome");
			dt.Columns.Add("Preco");
			dt.Columns.Add("background");

			foreach (var item in new ProdutoDAL().ListarPorLoja(Lj.ID, 20, 0))
			{
				dicRedirect = new Dictionary<string, string>();
				dicRedirect.Add(item.ID.ToString(), Geral.Constantes.QUERY_STRING.PRODUTO_ID);

				if (item.Promocao_ID == null)
					dt.Rows.Add(
						base.Redirecionar("Site/Pages/Loja/VerProduto.aspx", dicRedirect),
						ResolveUrl(item.Imagem),
						"style=\"display: none;\"",
						item.Nome,
						"R$ " + item.Preco.toMoneyString(),
						string.Format("style=\"background: {0}; color: {1}\"", Lj.CorPrincipal, Lj.CorTextoPrincipal));
				else
					dt.Rows.Add(
						base.Redirecionar("Site/Pages/Loja/VerProduto.aspx", dicRedirect),
						ResolveUrl(item.Imagem),
						"style=\"display: block;\"",
						item.Nome,
						"R$ " + item.Preco.toMoneyString(),
						string.Format("style=\"background: {0}; color: {1}\"", Lj.CorPrincipal, Lj.CorTextoPrincipal));
			}

			rptRecomendados.DataSource = dt;
			rptRecomendados.DataBind();
		}
	}
}